# 2024.07.28力扣网刷题
# 检查整数及其两倍数是否存在——数组、双指针、二分查找、哈希表、排序——简单
# 给你一个整数数组 arr，请你检查是否存在两个整数 N 和 M，满足 N 是 M 的两倍（即，N = 2 * M）。
# 更正式地，检查是否存在两个下标 i 和 j 满足：
# i != j
# 0 <= i, j < arr.length
# arr[i] == 2 * arr[j]
# 示例 1：
# 输入：arr = [10, 2, 5, 3]
# 输出：true
# 解释：N = 10 是 M = 5 的两倍，即 10 = 2 * 5 。
# 示例 2：
# 输入：arr = [7, 1, 14, 11]
# 输出：true
# 解释：N = 14 是 M = 7 的两倍，即 14 = 2 * 7 。
# 示例 3：
# 输入：arr = [3, 1, 7, 11]
# 输出：false
# 解释：在该情况下不存在 N 和 M 满足 N = 2 * M 。
# 提示：
# 2 <= arr.length <= 500
# - 10 ^ 3 <= arr[i] <= 10 ^ 3

class Solution(object):
    def checkIfExist(self, arr):
        """
        :type arr: List[int]
        :rtype: bool
        """
        # 成员运算符
        for i in range(len(arr)):
            num = arr[i] * 2
            if num and num in arr:
                return True
            elif num == 0 and arr.count(0) > 1:
                return True
        return False


arr = [-2, 0, 10, -19, 4, 6, -8]
print(Solution().checkIfExist(arr))
